VC6在编译vector<int>::iterator类型时的问题

来源:百度知道 编辑:UC知道 时间:2024/06/08 17:06:46
举个简单例子,程序如下。
#include<iostream>
#include<vector>

using std::endl;
using std::cout;
using std::cin;
using std::vector;

int main()
{

vector<int> ivec(10);

for (vector<int>::iterator iter = ivec.begin(); iter != ivec.end(); ++iter)
{
*iter = 42;
}

return 0;
}

在进行编译的时候会有如下错误信息
--------------------Configuration: 迭代器应用的程序示例 - Win32 Debug--------------------
Compiling...
迭代器应用的程序示例.cpp
F:\C++ Primer\迭代器应用的程序示例.cpp(14) : error C2653: 'vector<int,class std::allocator<int> >' : is not a class or namespace name
F:\C++ Primer\迭代器应用的程序示例.cpp(14) : error C2065: 'iterator' : undeclared identifier
F:\C++ Primer\迭代器应用的程序示例.cpp(14) : error C2146: syntax error : missing ';' before identifier 'iter'
F:\C++ Primer\迭代器应用的程序示例.cpp(14) : error C2065: &#

vector<int>::iterator 改为std::vector <int>::iterator
路径完整性的问题,具体我也说不上来,反正用的时候这样就可以了

在vc2005上也是没问题的。rebuild吧,如果还有问题,估计就是vc6的库有点老了,对stl的支持不是很好吧。

应该没有错。
vc 6没试过,至少vs 2003 没问题。
你可以试一下 删除 debug 文件,重新编译下。

晕,前面加
using namespace std;

std::vector<int> ivec(10);